#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
和结构体不同 共用体 共享一片最大的类型空间
*/

typedef union un_stu
{
    int a1;
    double a2;
}un_stu;

// 数据传输    协议

typedef union net_data
{
    // 应答信息
    struct resp_data
    {
        // 主机
        int main_start;  
            // = 1 主机发送信息
            // = 2 主机巡检
        // 设备
        int dev_start;   
            // = 1 设备发送信息
            // = 2 设备应答
    }resp_data_dev;
    

    // 传感器数据
    struct sens_data
    {
        int H;  // 湿度
        int C;  // 温度
    }sens_data_dev;

}net_data;

int main(int argc, char const *argv[])
{
    net_data * ptr = (net_data * )malloc(sizeof(net_data));
    // 判断创建是否成功....
    if(ptr==NULL)
    {
        printf("创建失败\n");
        return -1;
    }

    // 清空数据 
    memset(ptr , 0 , sizeof(net_data));

    // 接受数据 状态
    ptr->resp_data_dev.dev_start = 2;

    // 读取数据
    printf("当前设备状态为 %d\n" , ptr->resp_data_dev.dev_start );

    // 清空数据 
    // memset(ptr , 0 , sizeof(net_data));

    // 接受数据 传感器信息
    ptr->sens_data_dev.C = 25;
    ptr->sens_data_dev.H = 50;

    // 读取数据
    printf("当前设备温度 %d ℃\n" , ptr->sens_data_dev.C );
    printf("当前设备湿度 %d %%\n" , ptr->sens_data_dev.H );

    return 0;
}